A typical 3rd platform data center usually uses cloud technologies and has a multi-layer architecture. Simply put, the 3rd platform data center is usually divided into four layers: application layer (Apps layer), Platform as a Service layer, Infrastructure as a Service layer, and a Bare-metal layer.
The topology of real world's cloud data center would be much more complex than above description. However, the hardest thing is each layer being based on and affected by the upper layer or under layer, even cross layers. A general 3rd platform application requires: Real timely and elastically response to the request change, including scale-out when the request rapidly increasing, and scale-in at once request storm over; Capabilities requirement change according to the business evolution. For example, a small sales system requires I/O on database; but when the requests number increase, it is necessary to add more load balance layer, cache layer, and more calculation to promote the right products to potential customers, the application turns to CPU intensive type.
Former resource orchestration approaches are not regarding the data center as layered and not considering the resource allocation globally. Most of the former approaches in this area called “Orchestration Engine”, but only focus on a sub-part of a data center. In addition, most existing orchestration tools only focus on low-level feature exposing.
Therefore, when the requirement changes, how to orchestrate the layered cloud data center in a unified way in order to provide suitable capabilities immediately is a problem to be solved.